package edu.eam.gruposenior.gestorLEcciones.entidades;

import static javax.persistence.GenerationType.IDENTITY;

import java.io.Serializable;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;

/**
 * Entity implementation class for Entity: DetalleRol
 *
 */
@Entity
//@NamedQueries({
//	@NamedQuery(name=DetalleRol.FIND_DETALLE_ROL_BY_ID_ROL,query="select det from DetalleRol det where det.rol.id=:"+DetalleRol.PARAMETRO_ID_ROL),
//	@NamedQuery(name=DetalleRol.FIND_DETALLE_ROL_BY_LOGIN_FUNCIONARIO,query="select det from DetalleRol det where det.funcionario.login=:"+DetalleRol.PARAMETRO_LOGIN_FUNCIONARIO),
//	@NamedQuery(name=DetalleRol.FIND_ALL,query="select det from DetalleRol det")
//})
public class DetalleRol implements Serializable {
	
	/**
	 * Constante para la named Query de buscar todos los detalles del rol.
	 */
	public static final String FIND_ALL = "DetalleRol.findAll";
	
	/**
	 * Constante para la named query de buscar detalleRol por login del funcionario.
	 */
	public static final String FIND_DETALLE_ROL_BY_LOGIN_FUNCIONARIO="DetalleRol.findDetalleRolByLoginFuncionario";
	
	/**
	 * Constante para el parametro del login del funcionario.
	 */
	public static final String PARAMETRO_LOGIN_FUNCIONARIO="loginFuncionario";
	
	/**
	 * Constante para la named query para buscar DetalleRol por id del rol.
	 */
	public static final String FIND_DETALLE_ROL_BY_ID_ROL="DetalleRol.findDetalleRolByIdRol";
	
	/**
	 * Constante para el parametro del id del rol.
	 */
	public static final String PARAMETRO_ID_ROL="idRol";
	
	
	/**
	 * Constante de serialización.
	 */
	private static final long serialVersionUID = 1L;
	
	/**
	 * Llave primaria del registro.   
	 */
	@Id
	@GeneratedValue(strategy = IDENTITY)
	private Long id;
	/**
	 * Funcionario propietario del rol
	 */
	@ManyToOne
	@JoinColumn(name="USUARIO")
	private Usuario usuario;
	/**
	 * rol asociado al funcionario.
	 */
	@ManyToOne
	@JoinColumn(name="ROL")
	private Rol rol;

	public DetalleRol() {
		super();
	}

	/**
	 * @return the id
	 */
	public Long getId() {
		return id;
	}

	/**
	 * @param id the id to set
	 */
	public void setId(Long id) {
		this.id = id;
	}

	
	/**
	 * @return the rol
	 */
	public Rol getRol() {
		return rol;
	}

	/**
	 * @param rol the rol to set
	 */
	public void setRol(Rol rol) {
		this.rol = rol;
	}

	/**
	 * @return the usuario
	 */
	public Usuario getUsuario() {
		return usuario;
	}

	/**
	 * @param usuario the usuario to set
	 */
	public void setUsuario(Usuario usuario) {
		this.usuario = usuario;
	}   
	
	//TODO: falta toString
	
}
